library(tidyverse)
library(dplyr)
library(openxlsx)
library(readxl)
library(readr)
df <- readr::read_rds("../data/original/ration_students_truant.rds")
DT::datatable(df)
#万人に変換
df <- df %>%
mutate(
truant_student_man = truant_student / 10000)
df <- df %>%
group_by(year) %>%
#round(digits = 1) %>%
mutate(ratio_100 = sum(truant_student)/sum(students)*100)
options(digits = 1)
df$year <- factor(df$year)
df %>%
ggplot()+
geom_bar(aes(x = year,
y = truant_student_man),
stat = "identity")+
theme_bw(base_family = "hirakakupron-w3",
base_size = 12)+
labs(x = "年度", y = "不登校生徒数(万人)")+
theme(plot.title = element_text(hjust = 0.5))+
scale_size_continuous(range = c(1, 10)) +
ggtitle("不登校者数の推移")
df %>%
ggplot(aes(x = year,
y = ratio_100,
group= 1)) +
geom_point()+
geom_line() +
labs(x = "年度", y = "不登校割合(%)",
title = "不登校生徒割合の推移") +
theme_bw(base_family = "hirakakupron-w3",
base_size = 12)+
theme(plot.title = element_text(hjust = 0.5))+
coord_cartesian(ylim =c(0, 10))+
#ggrepel::geom_label_repel(aes(label = ratio)) +
theme(legend.title = element_blank(),
legend.position = "bottom")
df %>%
ggplot()+
geom_bar(aes(x = year,
y = truant_student_man),
stat = "identity",
fill="lightblue")+
geom_point(mapping = aes(x = year,
y = ratio_100,
group= 1))+
geom_line(aes(x = year,
y = ratio_100,
group= 1)) +
scale_y_continuous(
sec.axis = sec_axis(~. * 10/25,
name = "不登校割合(%)"),
limits = c(0, 25)) +
theme_bw(base_family = "hirakakupron-w3",
base_size = 12)+
labs(x = "年度", y = "不登校生徒数(万人)")+
theme(plot.title = element_text(hjust = 0.5))+
scale_size_continuous(range = c(1, 10)) +
ggtitle("不登校生徒数/割合の推移")
df <- df %>%
mutate(
ratio_22 = ratio*100
)
df <- df %>%
filter(year == 2022) %>%
mutate(
mean_x = sum(ratio_22)/length(prefecture)
)
df %>%
filter(year == 2022) %>%
ggplot() +
geom_histogram(aes(x = ratio_22),
#bins = 10,
binwidth = 0.5)+ # votehsare のヒストグラム
geom_vline(xintercept = df$mean_x, color ="skyblue", size = 0.5, linetype ="dashed") +
labs(x = "不登校割合(%)",
y = "")+
theme_bw(base_family = "hirakakupron-w3",
base_size = 12)+
theme(plot.title = element_text(hjust = 0.5))+
scale_size_continuous(range = c(1, 10)) +
ggtitle("不登校割合の分布")
df <- df %>%
mutate(pre = if_else(prefecture == "東京", 1, 0))
names(df)
[1] "prefecture" "year" "students"
[4] "truant_student" "ratio" "truant_student_man"
[7] "ratio_100" "ratio_22" "mean_x"
[10] "pre"
df <- df %>%
filter(year == 2022)
palette2 = rep('grey', times = 47)
palette2_named = setNames(object = palette2, nm = df$prefecture)
palette2_named['神奈川'] = 'pink'
print(palette2_named)
北海道 青森 岩手 宮城 秋田 山形 福島 茨城 栃木 群馬 埼玉
"grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey"
千葉 東京 神奈川 新潟 富山 石川 福井 山梨 長野 岐阜 静岡
"grey" "grey" "pink" "grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey"
愛知 三重 滋賀 京都 大阪 兵庫 奈良 和歌山 鳥取 島根 岡山
"grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey"
広島 山口 徳島 香川 愛媛 高知 福岡 佐賀 長崎 熊本 大分
"grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey" "grey"
宮崎 鹿児島 沖縄
"grey" "grey" "grey"
df %>%
ggplot() +
geom_bar(aes(x = ratio_22,
y = prefecture),
stat = "identity") +
geom_col(aes(x = ratio_22, y = prefecture,
fill = prefecture)) +
scale_fill_manual(values = palette2_named)+
labs(x = "不登校割合(%)", y = "都道府県") + # ラベル修正
scale_size_continuous(range = c(0, 10)) +
ggtitle("都道府県別不登校割合(2022年度)") +
theme_minimal() + # テーマを変えてみよう
theme_bw(base_family = "HiraKakuProN-W3")
library(geofacet)
library(ggrepel)
library(rmapshaper)
library(rnaturalearth)
library(sf)
library(tidyverse)
library(zipangu)
df_jpn_tru <- read.csv("../data/original/ration_students_truant_map.csv")
df_jpn_map <- ne_states("Japan",
returnclass = "sf")
unique(df_jpn_tru$name)
[1] "Hokkaido" "Aomori" "Iwate" "Miyagi" "Akita" "Yamagata"
[7] "Fukushima" "Ibaraki" "Tochigi" "Gunma" "Saitama" "Chiba"
[13] "Tokyo" "Kanagawa" "Niigata" "Toyama" "Ishikawa" "Fukui"
[19] "Yamanashi" "Nagano" "Gifu" "Shizuoka" "Aichi" "Mie"
[25] "Shiga" "Kyoto" "Osaka" "Hyogo" "Nara" "Wakayama"
[31] "Tottori" "Shimane" "Okayama" "Hiroshima" "Yamaguchi" "Tokushima"
[37] "Kagawa" "Ehime" "Kochi" "Fukuoka" "Saga" "Nagasaki"
[43] "Kumamoto" "Oita" "Miyazaki" "Kagoshima" "Okinawa"
unique(df_jpn_map$name)
[1] "Kagoshima" "Ōita" "Fukuoka" "Saga" "Nagasaki" "Kumamoto"
[7] "Miyazaki" "Tokushima" "Kagawa" "Ehime" "Kōchi" "Shimane"
[13] "Yamaguchi" "Tottori" "Hyōgo" "Kyōto" "Fukui" "Ishikawa"
[19] "Toyama" "Niigata" "Yamagata" "Akita" "Aomori" "Iwate"
[25] "Miyagi" "Fukushima" "Ibaraki" "Chiba" "Tokyo" "Kanagawa"
[31] "Shizuoka" "Aichi" "Mie" "Wakayama" "Ōsaka" "Okayama"
[37] "Hiroshima" "Hokkaidō" "Okinawa" "Gunma" "Nagano" "Tochigi"
[43] "Gifu" "Shiga" "Saitama" "Yamanashi" "Nara"
setdiff(df_jpn_map$name, df_jpn_tru$name)
[1] "Ōita" "Kōchi" "Hyōgo" "Kyōto" "Ōsaka" "Hokkaidō"
df_jpn_map <- df_jpn_map |>
mutate(name = str_replace_all(name,
c("Ōita" = "Ouita", # "Ōita" を "Oita" に変換
"Hyōgo" = "Hyogo",
"Kyōto" = "Kyoto",
"Ōsaka" = "Osaka",
"Hokkaidō" = "Hokkaido",
"Kōchi" = "Kochi")
))
df_jpn <- left_join(df_jpn_tru, df_jpn_map,
by = "name") %>%
st_as_sf()
DT::datatable(df_jpn)
plt_1 <- df_jpn|>
ggplot() +
aes(year, ratio) +
geom_line() +
theme_gray(base_size = 6,
base_family = "HiraKakuProN-W3",
) +
facet_geo(~ name,
grid = "jp_prefs_grid1",
scales = "free_y") +
theme(axis.text.x = element_text(angle = 80, # 40度回転
vjust = 1,
hjust = 1)) +
ggtitle("図1.不登校割合の都道府県別推移(2013-2022)") +
labs(x = "年度",
y = "不登校割合(%)")+
theme(plot.title = element_text(size = 15))
plt_1
df_jpn_cha <- read.csv("../data/original/ration_tstudents_change.csv")
df_jpn_map <- ne_states("Japan",
returnclass = "sf")
unique(df_jpn_cha$name)
[1] "Hokkaido" "Aomori" "Iwate" "Miyagi" "Akita" "Yamagata"
[7] "Fukushima" "Ibaraki" "Tochigi" "Gunma" "Saitama" "Chiba"
[13] "Tokyo" "Kanagawa" "Niigata" "Toyama" "Ishikawa" "Fukui"
[19] "Yamanashi" "Nagano" "Gifu" "Shizuoka" "Aichi" "Mie"
[25] "Shiga" "Kyoto" "Osaka" "Hyogo" "Nara" "Wakayama"
[31] "Tottori" "Shimane" "Okayama" "Hiroshima" "Yamaguchi" "Tokushima"
[37] "Kagawa" "Ehime" "Kochi" "Fukuoka" "Saga" "Nagasaki"
[43] "Kumamoto" "Oita" "Miyazaki" "Kagoshima" "Okinawa"
unique(df_jpn_map$name)
[1] "Kagoshima" "Ōita" "Fukuoka" "Saga" "Nagasaki" "Kumamoto"
[7] "Miyazaki" "Tokushima" "Kagawa" "Ehime" "Kōchi" "Shimane"
[13] "Yamaguchi" "Tottori" "Hyōgo" "Kyōto" "Fukui" "Ishikawa"
[19] "Toyama" "Niigata" "Yamagata" "Akita" "Aomori" "Iwate"
[25] "Miyagi" "Fukushima" "Ibaraki" "Chiba" "Tokyo" "Kanagawa"
[31] "Shizuoka" "Aichi" "Mie" "Wakayama" "Ōsaka" "Okayama"
[37] "Hiroshima" "Hokkaidō" "Okinawa" "Gunma" "Nagano" "Tochigi"
[43] "Gifu" "Shiga" "Saitama" "Yamanashi" "Nara"
setdiff(df_jpn_map$name, df_jpn_cha$name)
[1] "Ōita" "Kōchi" "Hyōgo" "Kyōto" "Ōsaka" "Hokkaidō"
df_jpn_map <- df_jpn_map |>
mutate(name = str_replace_all(name,
c("Ōita" = "Ouita", # "Ōita" を "Oita" に変換
"Hyōgo" = "Hyogo",
"Kyōto" = "Kyoto",
"Ōsaka" = "Osaka",
"Hokkaidō" = "Hokkaido",
"Kōchi" = "Kochi")
))
df_jpn_c <- left_join(df_jpn_cha, df_jpn_map,
by = "name") %>%
st_as_sf()
DT::datatable(df_jpn_c)
# 人口増減・都道府県別日本地図 (2016-2021)
df_jpn_c %>%
ggplot() +
geom_sf(aes(fill = change_1322)) +
scale_fill_distiller(name = "不登校増減(%)",
palette = "OrRd", # 任意の色を指定
direction = 1) +
labs(fill = "不登校増減(%)") +
theme_void(base_family = "HiraginoSans-W3", base_size = 9) +
ggtitle("図2.都道府県別 不登校の増減(2013年〜2022年)") +
theme(plot.title = element_text(size = 15))
だが、都道府県ごとに見ると、この十年間において増減は大きく異なる。
そして関東圏や関西圏といった都市圏において顕著な増加をしているわけでないことが確認できる。
この背景にはどのような理由
以上より、日本国内全体の傾向のみならず、都道府県・そして経済的規模に関わらず不登校の割合は増加していることが確認できた。
そのため背景から、地理的結びつきや経済的紐帯は取り除かれる。
しかし図1.より、上昇傾向は見られるものの2020年からのコロナ禍を機に急増していることが確認できる。
そのため、コロナ禍以前から不登校の傾向は確認できていたものの、都道府県ごとのコロナ禍への対応の差異などから、不登校割合が大きく異なったのではないかと推測する。
# 人口増減・都道府県別日本地図 (2016-2021)
df_jpn_c %>%
ggplot() +
geom_sf(aes(fill = change_1319)) +
scale_fill_distiller(name = "不登校増減(%)",
palette = "OrRd", # 任意の色を指定
direction = 1) +
labs(fill = "不登校増減(%)") +
theme_void(base_family = "HiraginoSans-W3", base_size = 9) +
ggtitle("図3.都道府県別 不登校の増減(2013年〜2019年)") +
theme(plot.title = element_text(size = 15))
# 人口増減・都道府県別日本地図 (2016-2021)
df_jpn_c %>%
ggplot() +
geom_sf(aes(fill = change_1922)) +
scale_fill_distiller(name = "不登校増減(%)",
palette = "OrRd", # 任意の色を指定
direction = 1) +
labs(fill = "不登校増減(%)") +
theme_void(base_family = "HiraginoSans-W3", base_size = 9) +
ggtitle("図4.都道府県別 不登校の増減(2019年〜2022年)") +
theme(plot.title = element_text(size = 15))
df_jpn %>%
filter(year == 2013) %>%
ggplot() +
geom_sf(aes(fill = ratio)) +
scale_fill_distiller(name = "不登校割合(%)",
palette = "Blues", # 任意の色を指定
direction = 1) +
labs(fill = "不登校割合(%)") +
theme_void(base_family = "HiraginoSans-W3", base_size = 9) +
ggtitle("都道府県別の不登校割合(2013年度)") +
theme(plot.title = element_text(size = 15))
df_jpn %>%
filter(year == 2022) %>%
ggplot() +
geom_sf(aes(fill = ratio)) +
scale_fill_distiller(name = "不登校割合(%)",
palette = "Blues", # 任意の色を指定
direction = 1) +
labs(fill = "不登校割合(%)") +
theme_void(base_family = "HiraginoSans-W3", base_size = 9) +
ggtitle("都道府県別の不登校割合(2022年度)") +
theme(plot.title = element_text(size = 15))